projects
/
project
/
bcm63xx
/
u-boot.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
ab77f24
)
usb: gadget: composite: Fix NULL pointer crash in USB compliance test
author
Stefan Roese
<
[email protected]
>
Fri, 9 Jan 2015 13:54:55 +0000
(14:54 +0100)
committer
Marek Vasut
<
[email protected]
>
Sun, 18 Jan 2015 11:31:00 +0000
(12:31 +0100)
On the DXR2 board (AM335x using MUSB) the USB compliance test suite
(USB 2.0 Command Verifier) will cause the board to crash and reset
upon the "BOS Descriptor Test - Addressed state". Here the output
from the DRX2 while running this test:
GADGET DRIVER: usb_dnl_dfu
musb-hdrc: peripheral reset irq lost!
composite_setup (776)
data abort
pc : [<
87f693ac
>] lr : [<
87f6911c
>]
sp :
86f33a58
ip :
00000000
fp :
86f3bbac
r10:
00000f00
r9 :
86f33ef4
r8 :
86f37da8
r7 :
00000005
r6 :
86f33a90
r5 :
00000000
r4 :
86f37e30
r3 :
00000000
r2 :
00000000
r1 :
87f9c888
r0 :
00000016
Flags: Nzcv IRQs off FIQs on Mode SVC_32
Resetting CPU ...
resetting ...
By adding the case statement for USB_DT_BOS and therefore not running
into the default case (jump to unkown label) this crash is fixed.
Signed-off-by: Stefan Roese <
[email protected]
>
Cc: Roger Meier <
[email protected]
>
Cc: Samuel Egli <
[email protected]
>
Cc: Enrico Leto <
[email protected]
>
Acked-by: Heiko Schocher <
[email protected]
>
Cc: Lukasz Majewski <
[email protected]
>
Cc: Marek Vasut <
[email protected]
>
drivers/usb/gadget/composite.c
patch
|
blob
|
history
diff --git
a/drivers/usb/gadget/composite.c
b/drivers/usb/gadget/composite.c
index a4c5606527a824bca5f53a5c7514d38e2d530f8b..98c2da6f14bbf3522125221cde25e8946ad18281 100644
(file)
--- a/
drivers/usb/gadget/composite.c
+++ b/
drivers/usb/gadget/composite.c
@@
-761,6
+761,14
@@
composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
if (value >= 0)
value = min(w_length, (u16) value);
break;
+ case USB_DT_BOS:
+ /*
+ * The USB compliance test (USB 2.0 Command Verifier)
+ * issues this request. We should not run into the
+ * default path here. But return for now until
+ * the superspeed support is added.
+ */
+ break;
default:
goto unknown;
}